(defpackage :child-problems
  (:use :cl))

(in-package :child-problems)

;; even problems

(defun old-problem (problem answer numops &optional hints)
  (declare (ignore answer numops))
  `(trial :tree ,(p:parse-old problem)
          ;; :hints ,hints
          ))

(defun child-even-1-1 ()
  (list
   (old-problem '(* (+ 5 7) 8) '(96) 2 t)
   (old-problem '(- 9 (* 4 2)) '(1) 2)
   (old-problem '(* (- 9 4) 2) '(10) 2)
   (old-problem '(- (* 8 7) 13) '(43) 2)
   (old-problem '(* 9 (+ 4 2)) '(54) 2)
   (old-problem '(* (/ 36 2) 6) '(108) 2)
   (old-problem '(- (- 16 (* 3 2)) 4) '(6) 3)
   (old-problem '(- 16 (- (* 3 2) 4)) '(14) 3)
   (old-problem '(* (+ 10 6) (- 11 3)) '(128) 3)
   (old-problem '(+ (* 6 (- 11 3)) 10) '(58) 3)
   (old-problem '(/ 100 (- (/ 20 5) 3)) '(100) 3)
   (old-problem '(- 20 (/ (+ 25 2) (+ 5 4))) '(17) 4)))

;; odd problems

(defun child-odd-1-1 ()
  (list
   (old-problem '(+ 5 (* 7 8)) '(61) 2 t)
   (old-problem '(* (+ 4 9) 5) '(65) 2)
   (old-problem '(+ (* 9 5) 4) '(49) 2)
   (old-problem '(- (* 5 2) 11) '(-1) 2)
   (old-problem '(* (- 11 5) 2) '(12) 2)
   (old-problem '(- (* 7 6) 19) '(23) 2)
   (old-problem '(* (+ 2 5) 8) '(56) 2)
   (old-problem '(* (/ 54 3) 2) '(36) 2)
   (old-problem '(- (- 17 (* 4 3)) 2) '(3) 3)
   (old-problem '(* (+ 14 6) (- 9 2)) '(140) 3)
   (old-problem '(+ 14 (* 6 (- 9 2))) '(56) 3)
   (old-problem '(- (/ 800 (/ 50 2)) 7) '(25) 3)
   (old-problem '(/ 28 (/ (* 8 6) (+ 5 7))) '(7) 4)))

;; alternate problems

(defun child-alt-1-1 ()
  (list
   (old-problem '(* (+ 4 7) 8) '(88) 2 t)
   (old-problem '(- 11 (* 5 2)) '(1) 2)
   (old-problem '(* (- 9 3) 3) '(18) 2)
   (old-problem '(- (* 8 6) 11) '(37) 2)
   (old-problem '(* 7 (+ 3 4)) '(49) 2)
   (old-problem '(* (/ 36 2) 6) '(108) 2)
   (old-problem '(- (- 16 (* 4 2)) 4) '(4) 3)
   (old-problem '(- 16 (- (* 4 2) 4)) '(12) 3)
   (old-problem '(* (+ 10 6) (- 11 3)) '(128) 3)
   (old-problem '(+ (* 6 (- 10 3)) 8) '(50) 3)
   (old-problem '(/ 80 (- (/ 30 6) 4)) '(80) 3)
   (old-problem '(/ 50 (/ 40 (- 7 3))) '(5) 3)
   (old-problem '(- (/ (- 44 8) (+ 3 3)) 2) '(4) 4)
   (old-problem '(* 8 (/ (- 22 7) (+ 2 3))) '(24) 4)
   (old-problem '(- 18 (/ (+ 12 3) (- 5 2))) '(13) 4)
   (old-problem '(/ 36 (/ (+ 55 8) (- 11 4))) '(4) 4)))

(defun child-odd-1-2 ()
  (old-problem '(+ 5 (4)) '(9) 2 t)
  (old-problem '(+ (93) 5) '(98) 2)
  (old-problem '(- (/ 24 (12)) 1) '(1) 3)
  (old-problem '(* (- (31) 31) 4) '(0) 3)
  (old-problem '(* 7 (11)) '(77) 2)
  (old-problem '(/ 40 (5)) '(8) 2)
  (old-problem '(/ (+ (0) 14) 7) '(2) 3))


(defun child-even-1-2 ()
  (list 
   (old-problem '(+ 5 (6)) '(11) 2 t)
   (old-problem '(+ (8) 5) '(13) 2)
   (old-problem '(+ (/ 72 (9)) 5) '(13) 3)

   (old-problem '(* 9 (13)) '(117) 2)
   (old-problem '(/ (90) 30) '(3) 2)
   (old-problem '(/ (60) 20) '(3) 2)
   (old-problem '(/ (+ (5) 7) 3) '(4) 3)))

(defun child-alt-1-2 ()
  (list
   (old-problem '(+ 3 (1)) '(4) 2 t)

   (old-problem '(+ (2) 9) '(11) 2)
   (old-problem '(+ (/ 72 (8)) 4) '(13) 3)
   (old-problem '(* (- (80) 31) 4) '(196) 3)
   (old-problem '(* 9 (9)) '(81) 2)
   (old-problem '(/ (60) 15) '(4) 2)
   (old-problem '(/ 32 (16)) '(2) 2)
   (old-problem '(/ (+ (14) 7) 3) '(7) 3)))

(defun child-both-1-2 ()
  (list 
   (old-problem '(+ 5 (4)) '(9) 2 :base)
   (old-problem '(+ (93) 5) '(98) 2)
   (old-problem '(+ (8) 5) '(13) 2)
   (old-problem '(- (/ 24 (12)) 1) '(1) 3)
   (old-problem '(+ (/ 72 (9)) 5) '(13) 3)
   (old-problem '(* (- (37) 19) 2) '(36) 3)
   (old-problem '(* (- (80) 31) 4) '(196) 3)
   (old-problem '(* (- (31) 31) 4) '(0) 3)
   (old-problem '(* 9 (13)) '(117) 2)
   (old-problem '(* 7 (11)) '(77) 2)
   (old-problem '(/ (90) 30) '(3) 2)
   (old-problem '(/ 40 (5)) '(8) 2)
   (old-problem '(/ (60) 20) '(3) 2)
   (old-problem '(/ (+ 5 (95)) 2) '(50) 3)
   (old-problem '(/ (+ (5) 7) 3) '(4) 3)
   (old-problem '(/ (+ (0) 14) 7) '(2) 3)))


(defun child-odd-1-7 ()
  (list
   (old-problem '(= (+ x 3) 8) '(= x 5) 2 t)
   (old-problem '(= (- x 10) 17) '(= x 27) 2)
   (old-problem '(= (+ x 4) 13) '(= x 9) 2)
   (old-problem '(= (* 5 x) 90) '(= x 18) 2)
   (old-problem '(= (/ x 3) 29) '(= x 87) 2)
   (old-problem '(= (- x 16) 7) '(= x 23) 2)
   (old-problem '(= (/ x 7) 68) '(= x 476) 2)
   (old-problem '(= (/ x 10) 100) '(= x 1000) 2)
   (old-problem '(= (+ x 5) 4) '(= x -1) 2)
   (old-problem '(= (/ x 3) 51) '(= x 153) 2)
   (old-problem '(= (* 3 x) 51) '(= x 17) 2)
   (old-problem '(= (/ x 17) 51) '(= x 867) 2)
   (old-problem '(= (* 6 x) 18) '(= x 3) 2)
   (old-problem '(= (* 3 x) 6) '(= x 2) 2)
   (old-problem '(= (* 5 x) 30) '(= x 6) 2)
   (old-problem '(= (* 7 x) 28) '(= x 4) 2)
   (old-problem '(= (+ x 3) 5) '(= x 2) 2)
   (old-problem '(= (- x 4) 7) '(= x 11) 2)))

(defun child-even-1-7 ()
  (list
   (old-problem '(= (+ x 5) 17) '(= x 12) 2 t)
   (old-problem '(= (- x 8) 13) '(= x 21) 2)
   (old-problem '(= (+ x 9) 21) '(= x 12) 2)
   (old-problem '(= (* 6 x) 72) '(= x 12) 2)
   (old-problem '(= (* 2 x) 24) '(= x 12) 2)

   (old-problem '(= (* 15 x) 210) '(= x 14) 2)
   (old-problem '(= (* 4 x) 100) '(= x 25) 2)
   (old-problem '(= (* 9 x) 54) '(= x 6) 2)
   (old-problem '(= (* 10 x) 1000) '(= x 100) 2)
   (old-problem '(= (+ x 7) 5) '(= x -2) 2)
   (old-problem '(= (* 4 x) 56) '(= x 14) 2)

   (old-problem '(= (* 3 x) 57) '(= x 19) 2)
   (old-problem '(= (* 3 x) 39) '(= x 13) 2)
   (old-problem '(= (* 4 x) 8) '(= x 2) 2)
   (old-problem '(= (* 2 x) 60) '(= x 30) 2)
   (old-problem '(= (+ x 3) 13) '(= x 10) 2)
   (old-problem '(= (- x 2) 14) '(= x 16) 2)))

(defun child-2-1 ()
  (list
   (old-problem '(+ 4 -3) '(1) 1 t)
   (old-problem '(+ -3 -4) '(-7) 1 t)
   (old-problem '(+ 5 -2) '(3) 1)
   (old-problem '(+ 6 -4) '(2) 1)
   (old-problem '(+ 2 -5) '(-3) 1)
   (old-problem '(+ 13 -8) '(5) 1)
   (old-problem '(+ 3 -7) '(-4) 1)
   (old-problem '(+ -3 -2) '(-5) 1)
   (old-problem '(+ -13 -4) '(-17) 1)
   (old-problem '(+ -4 -5) '(-9) 1)
   (old-problem '(+ -8 -9) '(-17) 1)
   (old-problem '(+ 0 -3) '(-3) 1)
   (old-problem '(+ -3 5) '(2) 1)
   (old-problem '(+ -4 1) '(-3) 1)
   (old-problem '(+ -13 15) '(2) 1)
   (old-problem '(+ -27 1) '(-26) 1)
   (old-problem '(+ -11 35) '(24) 1)))

(defun child-2-3 ()
  (list
   (old-problem '(- -4 3) '(-7) 1 t)
   (old-problem '(- 35 200) '(-165) 1)
   (old-problem '(- 14 -17) '(31) 1)
   (old-problem '(- -11 -2) '(-9) 1)
   (old-problem '(- -99 59) '(-158) 1)
   (old-problem '(- -241 -42) '(-199) 1)
   (old-problem '(- 158 -115) '(273) 1)
   (old-problem '(- 5 -2) '(7) 1)
   (old-problem '(- 0 -15) '(15) 1)
   (old-problem '(- 154 (- 43 28)) '(139) 2)
   (old-problem '(- 314 (- 58 70)) '(326) 2)
   (old-problem '(- (- 33 45) (- 64 78)) '(2) 3)
   (old-problem '(- (- 13 5) (- -2 6)) '(16) 3)
   (old-problem '(+ (- 1066 1492) 1984) '(1558) 2)
   (old-problem '(- (- 8 -3) (- 4 -6)) '(1) 3)
   (old-problem '(+ (+ (- 1 2) (- 4 8)) 16) '(11) 4)
   (old-problem '(- (+ (- (- 45 7) 58) 11) 21) '(-30) 4)
   (old-problem '(- (+ (- (+ (- 19 2) 23) 54) 34) 29) '(-9) 5)
   (old-problem '(- (+ (- (+ (- 200 195) 71) 66) 18) 29) '(-1) 5)))

(defun child-2-4 ()
  (list
   (old-problem '(* -3 -7) '(21) 1 t)
   (old-problem '(* -5 8) '(-40) 1 t)
   (old-problem '(* 10 -7) '(-70) 1)
   (old-problem '(* -5 -9) '(45) 1)
   (old-problem '(* -6 8) '(-48) 1)
   (old-problem '(* -2 6) '(-12) 1)
   (old-problem '(* -72 1) '(-72) 1)
   (old-problem '(* -1 -200) '(200) 1)
   (old-problem '(* -53 0) '(0) 1)
   (old-problem '(* (* -3 -5) -7) '(-105) 2)
   (old-problem '(* (* -2 5) -8) '(80) 2)
   (old-problem '(* (* 4 -7) 2) '(-56) 2)
   (old-problem '(* (* (* -1 5) -3) -2) '(-30) 3)))

(defun child-2-5 ()
  (list
   (old-problem '(/ -54 6) '(-9) 1 t)
   (old-problem '(/ -54 -3) '(18) 1 t)
   (old-problem '(/ -21 7) '(-3) 1)
   (old-problem '(/ -21 -7) '(3) 1)
   (old-problem '(/ -26 2) '(-13) 1)
   (old-problem '(/ 51 -3) '(-17) 1)
   (old-problem '(/ -55 -11) '(5) 1)
   (old-problem '(/ 1000 -10) '(-100) 1)
   (old-problem '(/ (- 7 19) -3) '(4) 2)
   (old-problem '(/ 45 (- 5 14)) '(-5) 2)
   (old-problem '(/ (- 32 4) (- 8 15)) '(-4) 3)
   (old-problem '(/ (* 8 -3) -6) '(4) 2)
   (old-problem '(/ (* -3 10) 5) '(-6) 2)
   (old-problem '(/ 10 -1) '(-10) 1)
   (old-problem '(/ -10 -1) '(10) 1)
   (old-problem '(/ 0 10) '(0) 1)
   (old-problem '(/ 15 (-3)) '(-5) 2)
   (old-problem '(/ (-30) -3) '(10) 2)
   (old-problem '(/ (+ (5) 11) (+ (5) 3)) '(2) 5)
   (old-problem '(/ (- 5 (2)) (- 3 (2))) '(3) 5)
   (old-problem '(/ (- 45 (-3)) (- 3 (-3))) '(8) 5)))

(defun child-odd-2-6 ()
  (list
   (old-problem '(+ 3 (+ (* 2 x) 7)) '((+ (* 2 x) 10)) 2 t)
   (old-problem '(+ (+ 4 x) 3) '((+ x 7)) 2)
   (old-problem '(+ (+ 6 x) 7) '((+ x 13)) 2)
   (old-problem '(- (+ 5 x) 3) '((+ x 2)) 2)
   (old-problem '(+ (+ -8 x) 4) '((+ x -4)) 2)
   (old-problem '(+ (- 15 x) 9) '((- 24 x)) 2)
   (old-problem '(- (- 6 x) 37) '((- -31 x)) 2)
   (old-problem '(- (- -19 x) 22) '((- -41 x)) 2)
   (old-problem '(+ (+ 9 (* 7 x)) 3) '((+ 12 (* 7 x))) 2)
   (old-problem '(+ (- -18 (* 3 x)) 7) '((- -11 (* 3 x) )) 2)
   (old-problem '(* (* 5 x) 7) '((* 35 x)) 2)
   (old-problem '(* (* 3 x) -8) '((* -24 x)) 2)
   (old-problem '(* (* 20 x) 5) '((* 100 x)) 2)
   (old-problem '(* -8 (* 50 x)) '((* -400 x)) 2)
   (old-problem '(* (* 9 x) 9) '((* x 81)) 2)
   (old-problem '(/ (* 54 x) 9) '((* 6 x)) 2)
   (old-problem '(/ (* -88 x) 11) '((* -8 x)) 2)
   (old-problem '(/ (* 1000 x) -10) '((* -100 x)) 2)
   (old-problem '(/ (* -37 x) -1) '((* 37 x)) 2)
   (old-problem '(/ (* -19 x) -19) '((* 1 x)) 2)))

(defun child-even-2-6 ()
  (list
   (old-problem '(* (* 12 x) 4) '((* x 48)) 2 t)
   (old-problem '(+ (+ 5 x) 4) '((+ x 9)) 2)
   (old-problem '(+ (+ 8 x) 13) '((+ 21 x)) 2)
   (old-problem '(- (+ 7 x) 9) '((- x 2)) 2) 
   (old-problem '(+ (+ -3 x) 11) '((+ x 8)) 2)
   (old-problem '(+ (- 16 x) 5) '((- 21 x)) 2)
   (old-problem '(- (- 12 x) 15) '((- -3 x)) 2)
   (old-problem '(- (- -2 x) 71) '((- -73 x)) 2)
   (old-problem '(+ (- -13 x) 13) '((- 0 x)) 2)
   (old-problem '(+ (+ 14 (* 3 x)) 21) '((+ 35 (* 3 x))) 2)
   (old-problem '(- (- 8 (* 5 x)) 13) '((- -5 (* 5 x))) 2)
   (old-problem '(* (* 7 x) 9) '((* x 63)) 2)
   (old-problem '(* (* 5 x) -13) '((* x -65)) 2)
   (old-problem '(/ (* 30 x) 6) '((* x 5)) 2)
   (old-problem '(* -3 (* 21 x)) '((* x -63)) 2)
   (old-problem '(* (* 3 x) 3) '((* x 9)) 2)
   (old-problem '(/ (* 86 x) 2) '((* x 43)) 2)
   (old-problem '(/ (* -18 x) 9) '((* x -2)) 2)
   (old-problem '(/ (* 100 x) -5) '((* x -20)) 2)
   (old-problem '(/ (* -1 x) -1) '((* x 1)) 2)))

(defun child-odd-2-7 ()
  (list
   (old-problem '(= (+ (* 2 x) 3) 19) '(= x 8) 4 t)
   (old-problem '(= (- 10 x) 2) '(= x 8) 2 t)
   (old-problem '(= (+ (* 2 x) 5) 7) '(= x 1) 4)
   (old-problem '(= (- (* 2 x) 8) 4) '(= x 6) 4)
   (old-problem '(= (+ (* 5 x) 4) 39) '(= x 7) 4)
   (old-problem '(= (- (* 3 x) 7) 26) '(= x 11) 4)
   (old-problem '(= (+ (* -6 x) 5) 23) '(= x -3) 4)
   (old-problem '(= (- (* -4 x) 9) 19) '(= x -7) 4)
   (old-problem '(= (- 13 (* 4 x)) 25) '(= x -3) 4)
   (old-problem '(= (- 8 (* 7 x)) -20) '(= x 4) 4)
   (old-problem '(= 53 (+ (* 5 x) 13)) '(= x 8) 4)
   (old-problem '(= (- 17 x) 25) '(= x -8) 2)
   (old-problem '(= 71 (- 4 x)) '(= x -67) 2)
   (old-problem '(= (+ (* 3 x) 6) 18) '(= x 4) 4)
   (old-problem '(= (+ -22 (* 4 x)) 10) '(= x 8) 4)
   (old-problem '(= (- -4 x) -3) '(= x -1) 2)))

(defun child-even-2-7 ()
  (list
   (old-problem '(= (+ (* 2 x) 5) -9) '(= x -7) 4 t)
   (old-problem '(= (- 5 x) -7) '(= x 12) 2 t)
   (old-problem '(= (+ (* 5 x) 3) 18) '(= x 3) 4)
   (old-problem '(= (- (* 4 x) 7) 5) '(= x 3) 4)
   (old-problem '(= (+ (* 6 x) 5) 53) '(= x 8) 4)
   (old-problem '(= (- (* 2 x) 13) 95) '(= x 54) 4)
   (old-problem '(= (+ (* -3 x) 1) 10) '(= x -3) 4)
   (old-problem '(= (- (* -2 x) 7) 23) '(= x -15) 4)
   (old-problem '(= (- 5 (* 3 x)) 56) '(= x -17) 4)
   (old-problem '(= (- 11 (* 9 x)) -43) '(= x 6) 4)
   (old-problem '(= 22 (+ 2 (* 5 x))) '(= x 4) 4)
   (old-problem '(= (- 15 x) 41) '(= x -26) 2)
   (old-problem '(= 13 (- 17 x)) '(= x 4) 2)
   (old-problem '(= (+ (* 3 x) 12) 36) '(= x 8) 4)
   (old-problem '(= (+ -8 (* 3 x)) 7) '(= x 5) 4)
   (old-problem '(= (- -2 x) 5) '(= x -7) 2)))

(defun child-3-1 ()
  (list
   (old-problem '(+ (* 5 (+ x 2)) 9) '((+ 19 (* 5 x))) 4 t)
   (old-problem '(+ (* 3 (+ x 5)) 11) '((+ 26 (* 3 x))) 4)
   (old-problem '(+ (* 7 (+ 6 x)) 8) '((+ (* 7 x) 50)) 4)
   (old-problem '(+ (* 2 (+ (* 3 x) 8)) 40) '((+ (* 6 x) 56)) 6)
   (old-problem '(- (* 9 (+ 4 (* 8 x))) 6) '((+ (* 72 x) 30)) 6)
   (old-problem '(+ 100 (* 6 (+ (* 4 x) 9))) '((+ (* 24 x) 154)) 6)))

(defun child-3-2 ()
  (list
   (old-problem '(- 9 (* 2 (- x 4))) '((+ (* -2 x) 17)) 4 t)
   (old-problem '(* 3 (+ x 7)) '((+ (* 3 x) 21)) 2)
   (old-problem '(* 7 (- (* 3 x) 8)) '((- (* 21 x) 56)) 4)
   (old-problem '(* -5 (- 6 x)) '((- -30 (* -5 x))) 2)
   (old-problem '(* 6 (+ 9 (* 7 x))) '((+ 54 (* 42 x))) 4)
   (old-problem '(* 28 (+ (* 4 x) 7)) '((+ (* 112 x) 196)) 4)
   (old-problem '(* 3 (+ (* 4 x) 3)) '((+ (* 12 x) 9)) 4)
   (old-problem '(- 8 (* 5 (- 4 (* 6 x)))) '((+ -12 (* 30 x))) 6)
   (old-problem '(- 11 (* 1 (+ (* 5 x) 3))) '((+ 8 (* -5 x))) 6)))

(defun child-3-4 ()
  (list
   (old-problem '(- (* 7 x) (* 5 x)) '((* 2 x)) 2 t)
   (old-problem '(+ (* 5 x) (- 6 (* 2 x))) '((+ (* 3 x) 6)) 2 t)
   (old-problem '(+ (* 5 x) (* 9 x)) '((* 14 x)) 2)
   (old-problem '(- (* 8 x) (* 3 x)) '((* 5 x)) 2)
   (old-problem '(- (* 9 x) (* 8 x)) '((* 1 x)) 2)
   (old-problem '(+ (+ (* 3 x) (* 7 x)) 8) '((+ (* 10 x) 8)) 2)
   (old-problem '(+ (+ (* 5 x) 9) (* 7 x)) '((+ (* 12 x) 9)) 2)
   (old-problem '(- (- (* 3 x) 2) (* 8 x)) '((- (* -5 x) 2)) 2)
   (old-problem '(+ (- -4 (* 5 x)) (* 11 x)) '((+ -4 (* 6 x))) 2)
   (old-problem '(- (+ (* -6 x) 13) (* 7 x)) '((+ 13 (* -13 x))) 2)
   (old-problem '(+ (* 5 x) (* 3 (- x 2))) '((- (* 8 x) 6)) 4)
   (old-problem '(- 7 (* 4 (+ (* 2 x) 5))) '((- -13 (* 8 x))) 6)
   (old-problem '(- (* 2 (+ (* 3 x) 4)) (* 5 x)) '((+ (* 1 x) 8)) 6)))

(defun child-3-5 ()
  (list
   (old-problem '(+ (* 2 x) x) '((* 3 x)) 2 t)
   (old-problem '(- (+ (* 5 x) 3) (- 6 (* 2 x))) '((+ (* 7 x) -3)) 3 t)
   (old-problem '(+ (* -8 (- (* 9 x) 7)) (- (* 72 x) 57)) '(-1) 9)
   (old-problem '(- (* 6 x) x) '((* 5 x)) 2)
   (old-problem '(+ (* 4 (+ (* 3 x) 2)) (* 6 (+ (* 5 x) 8))) '((+ (* 42 x) 56)) 11)
   (old-problem '(+ (* 2 (- x 5)) (* 5 (- 4 (* 2 x)))) '((+ (* -8 x) 10)) 9)
   (old-problem '(- (* 6 x) (- x 1)) '((+ (* 5 x) 1)) 2)
   (old-problem '(- (* 8 (+ (* 2 x) 3)) (* 4 (+ (* 3 x) 6))) '((* 4 x)) 12)
   (old-problem '(- (* 3 (+ 6 (* 5 x))) (* 7 (- (* 2 x) 1))) '((+ (* 1 x) 25)) 11)
   (old-problem '(- (* -6 (- x 5)) (* 2 (- 7 (* 3 x)))) '(16) 11)
   (old-problem '(- (* 8 (+ x 4)) (- x 5)) '((+ (* 7 x) 37)) 5)
   (old-problem '(- (* 4 (+ (* 12 x) 20)) (* 5 (- 30 (* 15 x)))) '((+ (* 123 x) -70)) 11)))

(defun child-4-1 ()
  (list
   (old-problem '(= (+ (* 2 x) (* 6 x)) 56) '(= x 7) 4 t)
   (old-problem '(= (- (* 7 x) (* 4 x)) 15) '(= x 5) 4)
   (old-problem '(= (+ (+ (* 3 x) (* 4 x)) 8) 22) '(= x 2) 6)
   (old-problem '(= (+ (- (* 10 x) (* 7 x)) 18) 6) '(= x -4) 6)
   (old-problem '(= (+ (- (* 5 x) (* 7 x)) 21) 27) '(= x -3) 6)
   (old-problem '(= (+ (+ (* 7 x) 3) (* 3 x)) 63) '(= x 6) 6)
   (old-problem '(= (- (- (* 9 x) 14) (* 5 x)) -10) '(= x 1) 6)
   (old-problem '(= (- (* 10 x) x) 90) '(= x 10) 4)
   (old-problem '(= (- (- (* 7 x) 4) (* 6 x)) 5) '(= x 9) 6)
   (old-problem '(= (+ (+ (+ (* 2 x) (* 3 x)) 4) (* 5 x)) 34) '(= x 3) 8)
   (old-problem '(= (+ (+ (+ (* 3 x) 4) (* 5 x)) (* 6 x)) 32) '(= x 2) 8)))

(defun child-4-2 ()
  (list 
   (old-problem '(= (+ (* 6 (- x 2)) (* 5 x)) 43) '(= x 5) 8 t)
   (old-problem '(= (+ (* 7 x) (* 3 x)) 40) '(= x 4) 4)
   (old-problem '(= (- (* 4 x) (* 11 x)) 105) '(= x -15) 4)
   (old-problem '(= (+ (+ (* 16 x) 3) (* 4 x)) 103) '(= x 5) 6)
   (old-problem '(= (- (- (* 7 x) 8) (* 4 x)) 25) '(= x 11) 6)
   (old-problem '(= (- (+ (* -5 x) 17) (* 8 x)) 56) '(= x -3) 6)
   (old-problem '(= 58 (+ (- 6 (* 14 x)) (* 12 x))) '(= x -26) 6)
   (old-problem '(= (- (+ (* 8 x) 5) (* 7 x)) 22) '(= x 17) 6)
   (old-problem '(= (- (+ (* 20 x) 84) (* 8 x)) 0) '(= x -7) 6)
   (old-problem '(= (+ (+ x 22) (* 4 x)) -33) '(= x -11) 6)
   (old-problem '(= (+ (+ (- (* 2 x) (* 5 x)) 13) (* 9 x)) 67) '(= x 9) 8)
   (old-problem '(= (- (* 5 (+ x 3)) (* 2 x)) -21) '(= x -12) 8)
   (old-problem '(= (+ (* 2 (- (* 3 x) 7)) (* 4 x)) 26) '(= x 4) 10)
   (old-problem '(= (+ (* 5 x) (* 3 (+ x 4))) 28) '(= x 2) 8)
   (old-problem '(= (- (* 7 x) (* 4 (- 2 (* 3 x)))) -27) '(= x -1) 10)
   (old-problem '(= (- (* 7 x) (+ 5 (* 6 x))) 4) '(= x 9) 6)
   (old-problem '(= (+ (- 12 (* 7 (- x 4))) x) -2) '(= x 7) 10)
   (old-problem '(= (- (* 2 (+ x 3)) (* 5 (- x 1))) 32) '(= x -7) 11)
   (old-problem '(= 55 (+ (* 3 (- (* 2 x) 1)) (* 2 (+ x 5)))) '(= x 6) 13)
   (old-problem '(= 0 (+ (* 4 (- 6 x)) (* 7 x))) '(= x -8) 8)
   (old-problem '(= (- (* 3 (+ x 2)) (- x 1)) 17) '(= x 5) 9)))

(defun child-4-3 ()
  (list
   (old-problem '(= (+ (* 3 x) 55) (* 8 x)) '(= x 11) 7 t)
   (old-problem '(= (+ (* 5 x) 27) (* 2 x)) '(= x -9) 7)
   (old-problem '(= (- (* 6 x) 28) (* 8 x)) '(= x -14) 7)
   (old-problem '(= (* 9 x) (- (* 4 x) 65)) '(= x -13) 7)
   (old-problem '(= (- 55 (* 3 x)) (* 8 x)) '(= x 5) 7)
   (old-problem '(= (* 5 x) (- 48 x)) '(= x 8) 7)
   (old-problem '(= (- (* 10 x) 51) (* 7 x)) '(= x 17) 7)
   (old-problem '(= (+ (* 29 x) 56) (* 27 x)) '(= x -28) 7)
   (old-problem '(= (* -6 x) (- x 70)) '(= x 10) 7)
   (old-problem '(= (* 9 x) (+ 34 (* 8 x))) '(= x 34) 7)
   (old-problem '(= (* 7 x) (- -16 (* 9 x))) '(= x -1) 7)
   (old-problem '(= (+ (* 5 x) 8) (+ (* 7 x) 8)) '(= x 0) 7)
   (old-problem '(= (- (* 2 x) 5) (+ (* 3 x) 4)) '(= x -9) 8)
   (old-problem '(= (- (+ (* 6 x) 8) (* 2 x)) (- (+ 3 (* 2 x)) 9)) '(= x -7) 12)
   (old-problem '(= (* 4 (+ x 3)) (* 6 x)) '(= x 6) 9)
   (old-problem '(= (* 5 (- 9 x)) (* 4 (+ x 18))) '(= x -3) 12)
   (old-problem '(= (+ (* 3 x) (* 3 (- 1 x))) (- x 17)) '(= x 20) 8)
   (old-problem '(= (* 2 (- 1 (* 3 (+ x 2)))) (- x 3)) '(= x -1) 18)))
